package co.baiku.boot.im.easemob.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;

/**
 * im 聊天组信息
 *
 * @author haojiaolong
 * @date 2020/11/7 14:53
 */
public class ChatGroupInfo implements Serializable {
    /**
     * 群组 ID，群组唯一标识符，由环信服务器生成，等同于单个用户的环信 ID。
     */
    private String id;
    /**
     * 群组名称，根据用户输入创建，字符串类型
     */
    private String name;
    /**
     * 群组描述，根据用户输入创建，字符串类型。
     */
    private String description;
    /**
     * 加入群组是否需要群主或者群管理员审批。true：是，false：否。
     */
    private boolean membersonly;
    /**
     * 是否允许群成员邀请别人加入此群。 true：允许群成员邀请人加入此群，false：只有群主才可以往群里加人。
     */
    private boolean allowinvites;
    /**
     * 群成员上限，创建群组的时候设置，可修改。
     */
    private Integer maxusers;
    /**
     * 群主的环信 ID。例如：{“owner”: “user1”}。
     */
    private String owner;
    /**
     * 创建该群组的时间戳
     */
    private Long created;
    /**
     * 现有成员总数。
     */
    private Integer affiliations_count;

    @JsonProperty("public")
    private boolean publicValue;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public boolean isMembersonly() {
        return membersonly;
    }

    public void setMembersonly(boolean membersonly) {
        this.membersonly = membersonly;
    }

    public boolean isAllowinvites() {
        return allowinvites;
    }

    public void setAllowinvites(boolean allowinvites) {
        this.allowinvites = allowinvites;
    }

    public Integer getMaxusers() {
        return maxusers;
    }

    public void setMaxusers(Integer maxusers) {
        this.maxusers = maxusers;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public Long getCreated() {
        return created;
    }

    public void setCreated(Long created) {
        this.created = created;
    }

    public Integer getAffiliations_count() {
        return affiliations_count;
    }

    public void setAffiliations_count(Integer affiliations_count) {
        this.affiliations_count = affiliations_count;
    }

    public boolean isPublicValue() {
        return publicValue;
    }

    public void setPublicValue(boolean publicValue) {
        this.publicValue = publicValue;
    }
}
